<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>
<HEAD>
   <TITLE>class  SG_EXPORT osg::Light</TITLE>
   <META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">

<H2>class  SG_EXPORT <A HREF="#DOC.DOCU">osg::Light</A></H2></H2><BLOCKQUOTE>Light state class which encapsulates OpenGL glLight() functionality</BLOCKQUOTE>
<HR>

<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=125>
<param name=classes value="CReferenced,MReferenced.html,CObject,MObject.html,CStateAttribute,MStateAttribute.html,CLight,MLight.html">
<param name=before value="M,M,M,M">
<param name=after value="Md_SPSP,Md_SP,Md_,M">
<param name=indent value="0,1,2,3">
<param name=arrowdir value="down">
</APPLET>
<HR>

<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.62.1">Light</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.62.2">Light</A></B>(const <!1><A HREF="Light.html#DOC.2.62.2">Light</A>&amp; light, const <!1><A HREF="CopyOp.html">CopyOp</A>&amp; copyop=CopyOp::SHALLOW_COPY)
<DD><I>Copy constructor using CopyOp to manage deep vs shallow copy</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.62.3">META_StateAttribute</A></B>(<!1><A HREF="osg.html">osg</A>, <!1><A HREF="Light.html">Light</A>, (<!1><A HREF="StateAttribute.html#DOC.2.119.5">Type</A>)(<!1><A HREF="StateAttribute.html#DOC.2.119.6.12">LIGHT_0</A>+<!1><A HREF="Light.html#DOC.2.62.32">_lightnum</A>))
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual   int <B><A HREF="#DOC.2.62.4">compare</A></B>(const <!1><A HREF="StateAttribute.html">StateAttribute</A>&amp; sa) const 
<DD><I>return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual   void <B><A HREF="#DOC.2.62.5">getAssociatedModes</A></B>(std::vector&lt;<!1><A HREF="StateAttribute.html#DOC.2.119.1">GLMode</A>&gt;&amp; modes) const 
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.62.6">setLightNum</A></B>(const int num)
<DD><I>Set which OpenGL light to operate on</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const int <B><A HREF="#DOC.2.62.7">getLightNum</A></B>() const 
<DD><I>Get which OpenGL light this osg::Light operates on</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   void <B><A HREF="#DOC.2.62.8">setAmbient</A></B>( const <!1><A HREF="Vec4.html">Vec4</A>&amp; ambient )
<DD><I>Set the ambient component of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   const <!1><A HREF="Vec4.html">Vec4</A>&amp; <B><A HREF="#DOC.2.62.9">getAmbient</A></B>() const 
<DD><I>Get the ambient component of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   void <B><A HREF="#DOC.2.62.10">setDiffuse</A></B>( const <!1><A HREF="Vec4.html">Vec4</A>&amp; diffuse )
<DD><I>Set the diffuse component of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   const <!1><A HREF="Vec4.html">Vec4</A>&amp; <B><A HREF="#DOC.2.62.11">getDiffuse</A></B>() const 
<DD><I>Get the diffuse component of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   void <B><A HREF="#DOC.2.62.12">setSpecular</A></B>( const <!1><A HREF="Vec4.html">Vec4</A>&amp; specular )
<DD><I>Set the specular component of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   const <!1><A HREF="Vec4.html">Vec4</A>&amp; <B><A HREF="#DOC.2.62.13">getSpecular</A></B>() const 
<DD><I>Get the specular component of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   void <B><A HREF="#DOC.2.62.14">setPosition</A></B>( const <!1><A HREF="Vec4.html">Vec4</A>&amp; position )
<DD><I>Set the position of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   const <!1><A HREF="Vec4.html">Vec4</A>&amp; <B><A HREF="#DOC.2.62.15">getPosition</A></B>() const 
<DD><I>Get the position of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   void <B><A HREF="#DOC.2.62.16">setDirection</A></B>( const <!1><A HREF="Vec3.html">Vec3</A>&amp; direction )
<DD><I>Set the direction of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   const <!1><A HREF="Vec3.html">Vec3</A>&amp; <B><A HREF="#DOC.2.62.17">getDirection</A></B>() const 
<DD><I>Get the direction of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   void <B><A HREF="#DOC.2.62.18">setConstantAttenuation</A></B>( const float constant_attenuation )
<DD><I>Set the constant attenuation of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   const float <B><A HREF="#DOC.2.62.19">getConstantAttenuation</A></B>() const 
<DD><I>Get the constant attenuation of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   void <B><A HREF="#DOC.2.62.20">setLinearAttenuation</A></B>( const float linear_attenuation )
<DD><I>Set the linear attenuation of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   const float <B><A HREF="#DOC.2.62.21">getLinearAttenuation</A></B>() const 
<DD><I>Get the linear attenuation of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   void <B><A HREF="#DOC.2.62.22">setQuadraticAttenuation</A></B>( const float quadratic_attenuation )
<DD><I>Set the quadratic attenuation of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   const float <B><A HREF="#DOC.2.62.23">getQuadraticAttenuation</A></B>() const 
<DD><I>Get the quadratic attenuation of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   void <B><A HREF="#DOC.2.62.24">setSpotExponent</A></B>( const float spot_exponent )
<DD><I>Set the spot exponent of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   const float <B><A HREF="#DOC.2.62.25">getSpotExponent</A></B>() const 
<DD><I>Get the spot exponent of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   void <B><A HREF="#DOC.2.62.26">setSpotCutoff</A></B>( const float spot_cutoff )
<DD><I>Set the spot cutoff of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   const float <B><A HREF="#DOC.2.62.27">getSpotCutoff</A></B>() const 
<DD><I>Get the spot cutoff of the light.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.62.28">captureLightState</A></B>()
<DD><I> Capture the lighting settings of the current OpenGL state and store them in this object</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual   void <B><A HREF="#DOC.2.62.29">apply</A></B>(<!1><A HREF="State.html">State</A>&amp; state) const 
<DD><I>Apply the light's state to the OpenGL state machine.</I>
</DL></P>

<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>int <B><A HREF="#DOC.2.62.32">_lightnum</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Vec4.html">Vec4</A> <B><A HREF="#DOC.2.62.33">_ambient</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Vec4.html">Vec4</A> <B><A HREF="#DOC.2.62.34">_diffuse</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Vec4.html">Vec4</A> <B><A HREF="#DOC.2.62.35">_specular</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Vec4.html">Vec4</A> <B><A HREF="#DOC.2.62.36">_position</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.62.37">_direction</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>float <B><A HREF="#DOC.2.62.38">_constant_attenuation</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>float <B><A HREF="#DOC.2.62.39">_linear_attenuation</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>float <B><A HREF="#DOC.2.62.40">_quadratic_attenuation</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>float <B><A HREF="#DOC.2.62.41">_spot_exponent</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>float <B><A HREF="#DOC.2.62.42">_spot_cutoff</A></B>
</DL></P>

<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual   <B><A HREF="#DOC.2.62.30">~Light</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.62.31">init</A></B>()
<DD><I>Initialize the light's settings with some decent defaults.</I>
</DL></P>

</DL>
<HR><H3>Inherited from <A HREF="StateAttribute.html">StateAttribute</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual   <!1><A HREF="Object.html">Object</A>* <B>cloneType</B>() const 
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual   <!1><A HREF="Object.html">Object</A>* <B>clone</B>(const <!1><A HREF="CopyOp.html">CopyOp</A>&amp;) const 
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual   bool <B>isSameKindAs</B>(const <!1><A HREF="Object.html">Object</A>* obj) const 
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual   const char* <B>libraryName</B>() const 
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual   const char* <B>className</B>() const 
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual   const <!1><A HREF="StateAttribute.html#DOC.2.119.5">Type</A> <B>getType</B>() const 
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual   bool <B>isTextureAttribute</B>() const 
<DT>
<IMG ALT="o" SRC=icon2.gif>bool <B>operator <  </B>(const <!1><A HREF="StateAttribute.html">StateAttribute</A>&amp; rhs) const 
<DT>
<IMG ALT="o" SRC=icon2.gif>bool <B>operator == </B>(const <!1><A HREF="StateAttribute.html">StateAttribute</A>&amp; rhs) const 
<DT>
<IMG ALT="o" SRC=icon2.gif>bool <B>operator != </B>(const <!1><A HREF="StateAttribute.html">StateAttribute</A>&amp; rhs) const 
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual   void <B>compile</B>(<!1><A HREF="State.html">State</A>&amp;) const 
</DL></P>

<P><DL>
<DT><H3>Public Members</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>typedef  GLenum <B>GLMode</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>typedef  unsigned int <B>GLModeValue</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>typedef  unsigned int <B>OverrideValue</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>enum  <B>Values</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>typedef  unsigned int <B>Type</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>enum  <B>Types</B>
</DL></P>

</DL>
<HR><H3>Inherited from <A HREF="Object.html">Object</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>inline   void <B>setDataVariance</B>(const <!1><A HREF="Object.html#DOC.2.87.8">DataVariance</A> dv)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   const <!1><A HREF="Object.html#DOC.2.87.8">DataVariance</A> <B>getDataVariance</B>() const 
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   void <B>setUserData</B>(<!1><A HREF="Referenced.html">Referenced</A>* obj)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   <!1><A HREF="Referenced.html">Referenced</A>* <B>getUserData</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   const <!1><A HREF="Referenced.html">Referenced</A>* <B>getUserData</B>() const 
</DL></P>

<P><DL>
<DT><H3>Public Members</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>enum  <B>DataVariance</B>
</DL></P>

<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Object.html#DOC.2.87.8">DataVariance</A> <B>_dataVariance</B>
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="Referenced.html">Referenced</A>&gt;  <B>_userData</B>
</DL></P>

</DL>
<HR><H3>Inherited from <A HREF="Referenced.html">Referenced</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>inline   <!1><A HREF="Referenced.html">Referenced</A>&amp; <B>operator = </B>(<!1><A HREF="Referenced.html">Referenced</A>&amp;)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   void <B>ref</B>() const 
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   void <B>unref</B>() const 
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   void <B>unref_nodelete</B>() const 
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   const int <B>referenceCount</B>() const 
</DL></P>

<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>mutable int <B>_refCount</B>
</DL></P>

</DL>

<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>Light state class which encapsulates OpenGL glLight() functionality</BLOCKQUOTE>
<DL>

<A NAME="Light"></A>
<A NAME="DOC.2.62.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Light()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Light"></A>
<A NAME="DOC.2.62.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Light(const <!1><A HREF="Light.html#DOC.2.62.2">Light</A>&amp; light, const <!1><A HREF="CopyOp.html">CopyOp</A>&amp; copyop=CopyOp::SHALLOW_COPY)</B></TT>
<DD>Copy constructor using CopyOp to manage deep vs shallow copy
<DL><DT><DD></DL><P>
<A NAME="META_StateAttribute"></A>
<A NAME="DOC.2.62.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_StateAttribute(<!1><A HREF="osg.html">osg</A>, <!1><A HREF="Light.html">Light</A>, (<!1><A HREF="StateAttribute.html#DOC.2.119.5">Type</A>)(<!1><A HREF="StateAttribute.html#DOC.2.119.6.12">LIGHT_0</A>+<!1><A HREF="Light.html#DOC.2.62.32">_lightnum</A>))</B></TT>
<DL><DT><DD></DL><P>
<A NAME="compare"></A>
<A NAME="DOC.2.62.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual   int compare(const <!1><A HREF="StateAttribute.html">StateAttribute</A>&amp; sa) const </B></TT>
<DD>return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs
<DL><DT><DD></DL><P>
<A NAME="getAssociatedModes"></A>
<A NAME="DOC.2.62.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual   void getAssociatedModes(std::vector&lt;<!1><A HREF="StateAttribute.html#DOC.2.119.1">GLMode</A>&gt;&amp; modes) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="setLightNum"></A>
<A NAME="DOC.2.62.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setLightNum(const int num)</B></TT>
<DD>Set which OpenGL light to operate on
<DL><DT><DD></DL><P>
<A NAME="getLightNum"></A>
<A NAME="DOC.2.62.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const int getLightNum() const </B></TT>
<DD>Get which OpenGL light this osg::Light operates on
<DL><DT><DD></DL><P>
<A NAME="setAmbient"></A>
<A NAME="DOC.2.62.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   void setAmbient( const <!1><A HREF="Vec4.html">Vec4</A>&amp; ambient )</B></TT>
<DD>Set the ambient component of the light. 
<DL><DT><DD></DL><P>
<A NAME="getAmbient"></A>
<A NAME="DOC.2.62.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   const <!1><A HREF="Vec4.html">Vec4</A>&amp; getAmbient() const </B></TT>
<DD>Get the ambient component of the light. 
<DL><DT><DD></DL><P>
<A NAME="setDiffuse"></A>
<A NAME="DOC.2.62.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   void setDiffuse( const <!1><A HREF="Vec4.html">Vec4</A>&amp; diffuse )</B></TT>
<DD>Set the diffuse component of the light. 
<DL><DT><DD></DL><P>
<A NAME="getDiffuse"></A>
<A NAME="DOC.2.62.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   const <!1><A HREF="Vec4.html">Vec4</A>&amp; getDiffuse() const </B></TT>
<DD>Get the diffuse component of the light. 
<DL><DT><DD></DL><P>
<A NAME="setSpecular"></A>
<A NAME="DOC.2.62.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   void setSpecular( const <!1><A HREF="Vec4.html">Vec4</A>&amp; specular )</B></TT>
<DD>Set the specular component of the light. 
<DL><DT><DD></DL><P>
<A NAME="getSpecular"></A>
<A NAME="DOC.2.62.13"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   const <!1><A HREF="Vec4.html">Vec4</A>&amp; getSpecular() const </B></TT>
<DD>Get the specular component of the light. 
<DL><DT><DD></DL><P>
<A NAME="setPosition"></A>
<A NAME="DOC.2.62.14"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   void setPosition( const <!1><A HREF="Vec4.html">Vec4</A>&amp; position )</B></TT>
<DD>Set the position of the light. 
<DL><DT><DD></DL><P>
<A NAME="getPosition"></A>
<A NAME="DOC.2.62.15"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   const <!1><A HREF="Vec4.html">Vec4</A>&amp; getPosition() const </B></TT>
<DD>Get the position of the light. 
<DL><DT><DD></DL><P>
<A NAME="setDirection"></A>
<A NAME="DOC.2.62.16"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   void setDirection( const <!1><A HREF="Vec3.html">Vec3</A>&amp; direction )</B></TT>
<DD>Set the direction of the light. 
<DL><DT><DD></DL><P>
<A NAME="getDirection"></A>
<A NAME="DOC.2.62.17"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   const <!1><A HREF="Vec3.html">Vec3</A>&amp; getDirection() const </B></TT>
<DD>Get the direction of the light. 
<DL><DT><DD></DL><P>
<A NAME="setConstantAttenuation"></A>
<A NAME="DOC.2.62.18"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   void setConstantAttenuation( const float constant_attenuation )</B></TT>
<DD>Set the constant attenuation of the light. 
<DL><DT><DD></DL><P>
<A NAME="getConstantAttenuation"></A>
<A NAME="DOC.2.62.19"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   const float getConstantAttenuation() const </B></TT>
<DD>Get the constant attenuation of the light. 
<DL><DT><DD></DL><P>
<A NAME="setLinearAttenuation"></A>
<A NAME="DOC.2.62.20"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   void setLinearAttenuation( const float linear_attenuation )</B></TT>
<DD>Set the linear attenuation of the light. 
<DL><DT><DD></DL><P>
<A NAME="getLinearAttenuation"></A>
<A NAME="DOC.2.62.21"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   const float getLinearAttenuation() const </B></TT>
<DD>Get the linear attenuation of the light. 
<DL><DT><DD></DL><P>
<A NAME="setQuadraticAttenuation"></A>
<A NAME="DOC.2.62.22"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   void setQuadraticAttenuation( const float quadratic_attenuation )</B></TT>
<DD>Set the quadratic attenuation of the light. 
<DL><DT><DD></DL><P>
<A NAME="getQuadraticAttenuation"></A>
<A NAME="DOC.2.62.23"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   const float getQuadraticAttenuation() const </B></TT>
<DD>Get the quadratic attenuation of the light. 
<DL><DT><DD></DL><P>
<A NAME="setSpotExponent"></A>
<A NAME="DOC.2.62.24"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   void setSpotExponent( const float spot_exponent )</B></TT>
<DD>Set the spot exponent of the light. 
<DL><DT><DD></DL><P>
<A NAME="getSpotExponent"></A>
<A NAME="DOC.2.62.25"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   const float getSpotExponent() const </B></TT>
<DD>Get the spot exponent of the light. 
<DL><DT><DD></DL><P>
<A NAME="setSpotCutoff"></A>
<A NAME="DOC.2.62.26"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   void setSpotCutoff( const float spot_cutoff )</B></TT>
<DD>Set the spot cutoff of the light. 
<DL><DT><DD></DL><P>
<A NAME="getSpotCutoff"></A>
<A NAME="DOC.2.62.27"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   const float getSpotCutoff() const </B></TT>
<DD>Get the spot cutoff of the light. 
<DL><DT><DD></DL><P>
<A NAME="captureLightState"></A>
<A NAME="DOC.2.62.28"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void captureLightState()</B></TT>
<DD>
Capture the lighting settings of the current OpenGL state
and store them in this object
<DL><DT><DD></DL><P>
<A NAME="apply"></A>
<A NAME="DOC.2.62.29"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual   void apply(<!1><A HREF="State.html">State</A>&amp; state) const </B></TT>
<DD>Apply the light's state to the OpenGL state machine. 
<DL><DT><DD></DL><P>
<A NAME="~Light"></A>
<A NAME="DOC.2.62.30"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual   ~Light()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="init"></A>
<A NAME="DOC.2.62.31"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void init()</B></TT>
<DD>Initialize the light's settings with some decent defaults. 
<DL><DT><DD></DL><P>
<A NAME="_lightnum"></A>
<A NAME="DOC.2.62.32"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int _lightnum</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_ambient"></A>
<A NAME="DOC.2.62.33"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Vec4.html">Vec4</A> _ambient</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_diffuse"></A>
<A NAME="DOC.2.62.34"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Vec4.html">Vec4</A> _diffuse</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_specular"></A>
<A NAME="DOC.2.62.35"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Vec4.html">Vec4</A> _specular</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_position"></A>
<A NAME="DOC.2.62.36"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Vec4.html">Vec4</A> _position</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_direction"></A>
<A NAME="DOC.2.62.37"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Vec3.html">Vec3</A> _direction</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_constant_attenuation"></A>
<A NAME="DOC.2.62.38"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>float _constant_attenuation</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_linear_attenuation"></A>
<A NAME="DOC.2.62.39"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>float _linear_attenuation</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_quadratic_attenuation"></A>
<A NAME="DOC.2.62.40"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>float _quadratic_attenuation</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_spot_exponent"></A>
<A NAME="DOC.2.62.41"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>float _spot_exponent</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_spot_cutoff"></A>
<A NAME="DOC.2.62.42"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>float _spot_cutoff</B></TT>
<DL><DT><DD></DL><P></DL>

<HR><DL><DT><B>This class has no child classes.</B></DL>

<DL><DT><DD></DL><P><P><I><A HREF="index.html">Alphabetic index</A></I> <I><A HREF="HIER.html">HTML hierarchy of classes</A> or <A HREF="HIERjava.html">Java</A></I></P><HR>
<BR>
This page was generated with the help of <A HREF="http://docpp.sourceforge.net">DOC++</A>.
</BODY>
</HTML>
